Интересно, что выборка со случайным эквивалентом и выборка только тех стимулов, где есть данные по всем шести языкам, дает такие разные результаты. Что будет если взять выборку данных по всем языкам и В НЕЙ провести случайную выборку эквивалентной конструкции?
Маша предложила классификацию, которую я попробую воспроизвести.
простая переходная вида X Aux Y V (только этот случай)
простая непереходная X Aux V Y Ad, X Aux V loc, X+Y Aux V, Y Aux V X Ad (по идее исчерпывающий список, а что я забыла?)
конструкция с копулой - можно взять автоматически все случаи, где в формуле есть копула be: Y be X Ad, X be Y Ad, X be adj Y Ad, N be Xgen Y Ad, X+Y be N Ad и т.д.
некопульная конструкция со сложным глаголом - взять автоматически все случаи, где в формуле выполняется два условия: есть Aux (=нет be) и есть хотя бы одно N (вместе переходные, и непереходные) - X Aux N V Y Ad; X Aux Y N V; Xgen N Aux V Y Ad и т.д.
По идее это не исчерпывающий список, останется что-то на периферии вроде X+Y Aux V X+Ypron recp Ad, но это редкие штуки.
Вот, что получилось. Маш, что исправить? Вот саммари:
Code
df |>mutate(type =case_when(construction_type =="X Aux Y V"~"transitive",str_detect(construction_type, "Aux") &!str_detect(construction_type, "N") ~"intransitive",str_detect(construction_type, "be") ~"copula",str_detect(construction_type, "Aux") &str_detect(construction_type, "N") ~"complex verb",TRUE~"other")) |>count(type, language) |>pivot_wider(names_from = language, values_from = n, values_fill =0) |>arrange(-Looma) |>select(type, Guro, Dan_Gweetaa, Mano, Kpelle, Kono, Looma, Bamana)
type
Guro
Dan_Gweetaa
Mano
Kpelle
Kono
Looma
Bamana
transitive
43
37
45
36
32
42
61
intransitive
39
39
58
37
31
33
59
complex verb
33
49
89
54
35
31
24
copula
5
9
20
18
17
9
12
other
0
0
0
0
0
0
1
Во-вторых, есть отдельная просьба про распределение конструкций и глаголов. В первом листе stimuli_general в столбце B есть семантическая разметка глаголов. Добавь её, пожалуйста, в глагольную таблицу, которую ты будешь снова генерировать. А дальше я бы попросила сделать следующее. Посчитать для каждого глагола, сколько ему в наших языках соответствует разных конструкций из 4 типов, выделенных выше. А потом слить глаголы из одной семантической группы и посчитать для семантических групп вместе статистику по конструкциям. Грубо говоря я хочу проверить, верно ли, что у глаголов вида effect будет больше переходных конструкций, а у feeling больше сложных глаголов, т.к. более абстрактные значения языки склонны выражать метафорически.
в дан гвета есть адлоги dhi̋ɤ и dhiɤ̋, bhȁ и bhàa, которые, наверное, про одно и то же. Кроме того есть адлог loc.
в гуро есть адлоги léè и leè, lɛ̄ и lɛ, ɓa̰ и ɓā̰. Кроме того есть адлог loc.
в лома есть адлоги mà и mà̀ (с двумя знаками тона). Кроме того есть адлог loc.
в мано есть адлоги píé и píé (я не понимаю в чем разница…).
Проблемы на 15.02.2023:
В гуро ɓa̰ и ɓā̰ — разное?
В гуро ya̰ и yā̰ — разное?
Я не совсем понял, что написала МХ, так что я пока посчитал вот такое вот. Какие адлоги из разных языков встречаются друг с другом в одной расширеной конструкции внутри одного стимула?
Если из двух компонентов совпал 1, мы ставим 0.5, если из трех 1, то 0.33, если из трех два, то 0.66. Если две конструкции, то учитываем максимальное совпадение
Чем выше значение, тем больше сходство. У меня есть подозрение, что я где-то налажал (ну и я сейчас выкинул все, что я подозревал в ошибке), но оно говорит что-то не совсем дикое: огромное сходство кпелле и коно, большое сходство кпелле и мано… Чудеса…
Я преобразую все вот в такую таблицу. К language я привинчиваю количество частей. Так что, например, первые две строчки нужно читать так: в стимуле номер 1 в языке Dan_Gweetaa 2 части break и interior. Так как таблица отсортирована по номеру стимула, то больше сложных глаголов в первом стимуле нет.
Я сделал некоторый хак, который позволяет делать кластеризацию. Я завожу признаки, которые состоят из фрагмента значения и номера, в котором он встречается:
Конечно, при таком варианте получается много единичных случаев, которые удлинняют палки и в кластеризации и в нейборнете, однако таких случаев, когда во всех семи языках есть форма.
Только стимулы, для которых есть все языки
Что если посмотреть только на те стимулы, для которых есть какая-то форма (сложный глагол или нет):
МК: я предлагаю сделать для статьи простую таблицу, где будут сводные данные по всем языкам и только самые распространенные типы, а в приложении более полную таблицу с конкретными языками.
Давай будем делать так. Давай сделаем новую табличку с construction types. X Aux Y V, Y Aux X V, X Aux Y N V, Y Aux X N V запишем просто как transitive; X Aux V loc запишем как NOM_loc; во всех примерах с X Aux V Y Ad, Y Aux V X Ad, X Aux N V Y Ad, Y Aux N V X Ad, X Aux Xrefl N V Y Ad, Y Aux Yrefl N V X Ad заменим Ad на этимологическую форму (это реально сделать? достаточно просто составить список на базе таблицы с этимологией послелогов и надеяться, что там нет двух одинаковых форм в разных языках с разной этимологией). X Aux V Y Ad, X Aux N V Y Ad и X Aux Xrefl N V Y Ad станут NOM_этимологическая форма послелога, Y Aux V X Ad, Y Aux N V X Ad и Y Aux Yrefl N V X Adстанут этимологическая форма послелога_NOM. остальные выкинем. Cколько, кстати, выкинется? И посмотрим, какая кластеризация выйдет (применим те же методы: все стимулы, общие, общие и рандомные). Если она будет иметь еще меньше смысла для language specialists, тогда наша более подробная классификация будет оправдана.
Code
et <- readxl::read_xlsx("../GM_merged_wide_adpositions_MK_0926.xlsx")et |>mutate(Guro =str_c(Guro, " ||| ", `Guro etym`),Looma =str_c(Looma, " ||| ", `Looma etym`),Mano =str_c(Mano, " ||| ", `Mano etym`),Dan_Gweetaa =str_c(Dan_Gweetaa, " ||| ", `Dan etym`),Kono =str_c(Kono, " ||| ", `Kono etym`),Kpelle =str_c(Kpelle, " ||| ", `Kpelle etym`),Bamana =str_c(Bamana, " ||| ", `Bamana etym`)) |>select(number, predicate_eng, construction_type, Guro, Looma, Mano, Dan_Gweetaa, Kono, Kpelle, Bamana) |>pivot_longer(names_to ="language", values_to ="value", Guro:Bamana) |>separate_wider_delim(value, names =c("adposition", "adposition_etymology"), delim =" ||| ") |>filter(adposition_etymology !="0") |>na.omit() -> adposition_etymologydf |>filter(number %in% to_keep) |>left_join(adposition_etymology) |>mutate(construction_type_new =str_replace(construction_type, "Ad", adposition_etymology)) |>mutate(construction_type_new =case_when(construction_type_new %in%c("X Aux Y V" ,"Y Aux X V", "X Aux Y N V","Y Aux X N V") ~"transitive", construction_type_new =="X Aux V loc"~"NOM_loc",!is.na(adposition_etymology) &str_detect(construction_type, "^X ") ~str_c("NOM_", adposition_etymology),!is.na(adposition_etymology) &str_detect(construction_type, "^Y ") ~str_c(adposition_etymology, "_NOM"),TRUE~ construction_type_new)) |>filter(is.na(construction_type_new))